/*
    先手必胜状态: 一定能够有一个步骤能够让下一个状态变成先手必败状态
    先手必败状态：先手一定失败
*/

// 1. 最终情况一定是先手必败状态，即所有数的异或值为0
// 2. 先手必胜状态中所有石子的异或值一定不是0
/*
    推导：找到当前异或值的最高位k，通过反证法一定可以得到石子数量中存在一个ai的第k位是1
    易知 ai ^ x < ai ，所以在当前堆中拿去ai - ai ^ x个石子是合法的
    拿去ai - ai ^ x个石子后，剩下的石子为ai ^ x个石子后
    a1 ^ a2 ^ a3 ^ ai ^ x ^ ... ^ an = x ^ x = 0
*/
// 3. 先手必败状态的异或值一定是0
/*
    当前状态: a1 ^ a2 ^ ai ^ ... ^ an = 0
    反证法可以推导，假设拿去某个数后所有数的异或和是0，
    则a1 ^ a2 ^ ai` ^ ... ^ an = 0
    左右两边同时异或，得 ai ^ ai` = 0
    也就是ai == ai`, 与条件矛盾
    所以，从当前状态任意取石子个数后，一定是先手必胜状态
*/
// 由以上三步得证

#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;
    int res = 0;
    while (n--)
    {
        int t = 0;
        cin >> t;
        res ^= t;
    }
    if (res)
        cout << "Yes";
    else
        cout << "No\n";
    return 0;
}
